Multicasting is a “one source to many destinations” packet transportation method where a packet is transmitted from a source node to several destination nodes. A network forwarding element such as a router or a switch receives a packet that identifies one or more multicast groups, replicates the packet, and sends the packet copies to the destination nodes that are members of the multicast groups.
The forwarding element identifies an egress path and an egress port to each destination in order to forward a copy of the multicast packet to the destination. Once one of these egress paths or ports fails, the forwarding element has to identify another egress path or port to forward the copy of the multicast packet to the destination.
A typical solution for failover is keeping track of the failed paths and using software in the control plane of the forwarding element to identify an alternative live egress path and/or a live egress port in order to forward the multicast packet. However, utilizing software for failover is slow. Depending on the load of the processor that is executing the software, doing the failover by software may take several milliseconds. Such a delay is not desirable and can cause significant latencies in a high-speed forwarding element.